#include<stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h> 
#include <unistd.h>


#if 0
       #include <unistd.h>

       ssize_t read(int fd, void *buf, size_t count);
函数作用：
        从指定的文件中读取数据，存储到内存空间buf中
参数：
        fd :你要从哪个文件中读取数据，就将这个文件的文件描述符传递进来
        buf:你从文件中读取数据出来，把数据存储到内存空间中，那这个buf就是该内存空间的起始地址
        count：你要从该文件中读取多少个字节  ---愿望值  100
返回值：
        成功：返回读取到的字节数
        失败：返回-1  错误码被标记
        返回值 为0 表示读取到了文件的末尾
#endif 

int main()
{
#if 0
    //close(0);
    
    //从标准输入---键盘  获取数据   标准输入文件描述符 0
    char buf[1024] = {0};
    int ret = read(0,buf,1024);
    if(ret == -1){
        perror("read error");
    }

    printf("ret:%d buf:%s\n",ret,buf);
#endif 
    //1 打开文件  必需以可读的方式打开
    int fd = open("./1.txt",O_RDONLY);
    if (fd == -1)
    {
        perror("open error");
        return -1;
    }
#if 0
    //第一次 读取数据
    char buf[1024] = {0};
    int ret = read(fd,buf,2);
    if(ret == -1){
        perror("read error");     
    }

    printf("ret:%d buf:%s\n",ret,buf);
    
    //第二次 读取数据
    memset(buf,0,sizeof(buf));
    ret = read(fd,buf,2);
    if(ret == -1){
        perror("read error");     
    }
    printf("ret:%d buf:%s\n",ret,buf);
#endif 

#if 0
    while (1)
    {
        char buf[1024] = {0};
        int ret;
        ret = read(fd,buf,1);
        if(ret == 0)
        {
            printf("文件读取完毕\n");
            break;
        }
        if(ret == -1)
        {
            perror("read error");
            break;
        }
        printf("ret:%d buf:%s\n",ret,buf);
    }
#endif 
    int data = 0;
    int ret = read(fd,&data,sizeof(data)); 
    if(ret == -1)
    {
        perror("read error");
        return -1;
    }
    printf("ret:%d data:%#x\n",ret,data);
    
    //关闭文件
    close(fd);
}